package cz.acies.genea.data.gedcom.model;

public class Header extends NoteContainer
{
	private Generator sour = null;
	private String dest = null;
	private DateTime date = null;
	private String submRef = null;
	private Submitter subm = null;
	private String subnRef = null;
	private Submission subn = null;
	private String file = null;
	private String copr = null;
	private GedcomVersion gedc = null;
	private CharacterSet charset = null;
	private String lang = null;

	public Generator getGenerator() {
		return sour;
	}

	public void setGenerator(Generator sour) {
		this.sour = sour;
	}

	public String getDestination() {
		return dest;
	}

	public void setDestination(String dest) {
		this.dest = dest;
	}

	public DateTime getDateTime() {
		return date;
	}

	public void setDateTime(DateTime date) {
		this.date = date;
	}

	/**
	 * Use Gedcom.getSubmitter in place of this function
	 * 
	 * @return submitter reference
	 */
	public String getSubmitterRef() {
		return submRef;
	}

	public void setSubmitterRef(String submRef) {
		this.submRef = submRef;
	}

	/**
	 * Use Gedcom.getSubmitter in place of this function
	 * 
	 * @return submitter
	 */
	public Submitter getSubmitter() {
		return subm;
	}

	public void setSubmitter(Submitter subm) {
		this.subm = subm;
	}

	/**
	 * Use Gedcom.getSubmission in place of this function
	 * 
	 * @return submission reference
	 */
	public String getSubmissionRef() {
		return subnRef;
	}

	public void setSubmissionRef(String subnRef) {
		this.subnRef = subnRef;
	}

	/**
	 * Use Gedcom.getSubmission in place of this function
	 * 
	 * @return submission
	 */
	public Submission getSubmission() {
		return subn;
	}

	public void setSubmission(Submission subn) {
		this.subn = subn;
	}

	public String getFile() {
		return file;
	}

	public void setFile(String file) {
		this.file = file;
	}

	public String getCopyright() {
		return copr;
	}

	public void setCopyright(String copr) {
		this.copr = copr;
	}

	public GedcomVersion getGedcomVersion() {
		return gedc;
	}

	public void setGedcomVersion(GedcomVersion gedc) {
		this.gedc = gedc;
	}

	public CharacterSet getCharacterSet() {
		return charset;
	}

	public void setCharacterSet(CharacterSet charset) {
		this.charset = charset;
	}

	public String getLanguage() {
		return lang;
	}

	public void setLanguage(String lang) {
		this.lang = lang;
	}

	public void accept(Visitor visitor) {
		if (visitor.visit(this)) {
			if (sour != null) {
				sour.accept(visitor);
			}
			if (date != null) {
				date.accept(visitor);
			}
			if (subm != null) {
				subm.accept(visitor);
			}
			if (subn != null) {
				subn.accept(visitor);
			}
			if (gedc != null) {
				gedc.accept(visitor);
			}
			if (charset != null) {
				charset.accept(visitor);
			}
			super.visitContainedObjects(visitor);
			visitor.endVisit(this);
		}
	}
}
